| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { type NextRequest, NextResponse } from 'next/server';
- import { fetchJson } from '@/lib/utils/server';
- export async function GET(request: NextRequest, { params }: { params: { slug: string } }) {
- const { slug } = await params;
- switch (slug) {
- default:
- return new Response(JSON.stringify({ message: '잘못된 요청입니다.' }), { status: 400 });
- // accessToken 검증
- case 'verify-token': {
- const res = await fetchJson('/api/auth/verify-token', {
- method: 'GET',
- headers: {'Content-Type': 'application/json'},
- data: request,
- withCredentials: true
- });
- return new NextResponse(JSON.stringify(res), {
- status: 200
- });
- }
- // refreshToken 검증
- case 'refresh-token': {
- const res = await fetchJson('/api/auth/refresh-token', {
- method: 'GET',
- headers: {'Content-Type': 'application/json'},
- data: request,
- withCredentials: true
- });
- return new NextResponse(JSON.stringify(res), {
- status: 200
- });
- }
- }
- }
- export async function POST(request: NextRequest, { params }: { params: { slug: string } }) {
- const { slug } = await params;
- switch (slug) {
- default:
- return new Response(JSON.stringify({ message: '잘못된 요청입니다.' }), { status: 400 });
- // 로그아웃
- case 'logout': {
- const res = await fetchJson('/api/auth/logout', {
- method: 'GET',
- headers: {'Content-Type': 'application/json'},
- withCredentials: true
- });
- const headers = new Headers();
- if (res.ok) {
- headers.append('Set-Cookie', 'accessToken=; HttpOnly; Path=/; Max-Age=0;');
- headers.append('Set-Cookie', 'refreshToken=; HttpOnly; Path=/; Max-Age=0;');
- }
- return new NextResponse(null, {
- status: 200,
- headers: headers
- });
- }
- }
- }
|